feat: RMK v0.9 support and layout convert/show subcommands - #12
Closed
HaoboGu wants to merge 5 commits into
Closed
Conversation
Signed-off-by: Haobo Gu <haobogu@outlook.com>
rmk-config 0.7 removed the `get_*` accessors rmkit was built on and restructured `keyboard.toml`, so master neither compiles against it nor parses a 0.9 config. Port the parser to the resolved views — `identity()`, `hardware()` and `host()` replace the seven `get_*` calls — and fix the feature list rmkit emits: - `controller` was removed from rmk, so stop enabling it for light pins - `vial_lock` is now `host_lock` - Rynk was not handled at all, so a `rynk_enabled = true` config produced a Vial build whose features contradict `[host]` and fail to compile. Emit `rynk` and drop `vial` instead. Migrate the demo `keyboard.toml` to the new schema, and fix two older breakages in it along the way: the split matrix still used `input_pins`/`output_pins` (renamed before 0.8), and `chip = "rp2040"` was paired with nRF pins and BLE. Point the template download, the version-mapping URL and the README at the rmk-rs organisation, and use `releases/latest` for the installer scripts so they stop going stale. rmk-config 0.7.0 is not on crates.io yet, so the dependency is a git rev for now. It has to go back to `version = "0.7"` before 0.0.22 is published — a git dependency cannot be published. Signed-off-by: Haobo Gu <haobogu@outlook.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…rmk-0.9-final # Conflicts: # README.md
…/rmk-0.9-final # Conflicts: # Cargo.lock # Cargo.toml # README.md # src/keyboard_toml.rs
… bump 0.1.0
Consolidates chore/rmk-0.9-compat and feat/layout_converter:
- layout_cmd/render: Generated.{inner_layout_toml,display_toml} merged into
layout_toml upstream; keyboard_toml_to_vial moved to the crate root;
Key gained rect (center + size); encoders are fixed 1u knobs now
- rynk-kle/rmk-config both git-pinned to the v0.9.0 prep commit (9372651)
until published on crates.io
- regenerate golden fixtures: the converter now emits [r=deg@(x,y)] rotation
regions instead of per-key rotated shapes; @2uv is @2u_tall
- add esp32h2 to init chip options (templates exist in rmk-template)
- bump to 0.1.0 for the new layout subcommands
Collaborator
Author
|
Split into a reviewable stack — closing this in favour of:
Same final tree as this branch, verified identical. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consolidates the v0.9 adaptation and the KLE layout tooling into one branch (supersedes
chore/rmk-0.9-compat,feat/layout_converter, andfeat/rmk-v0.9).RMK v0.9 adaptation
resolved::*API (identity()/hardware()/host()); the old getter API was removed upstreamcontrollerfeature push;vial_lockis nowhost_lockrynk_enabledenables therynkfeature and disables the mutually-exclusivevialkeyboard.tomlto the v0.9 schemaNew:
rmkit layoutrmkit layout convert <kle|vial.json> [-o FILE]— KLE JSON export or vial.json →[layout]TOML, validated by a round-trip through RMK's own layout builder;--to-vialfor the reverse directionrmkit layout show <keyboard.toml|vial.json|kle>— render the physical layout as box-drawing art in the terminal (shared borders merge into junctions, encoders drawn with rounded corners,--variantto pick one)rynk-klecrate from the RMK repo; this CLI is glue over itMisc
esp32h2to theinitchip options (templates exist in rmk-template)rmk-rsorgreleases/latestRelease blocker
rmk-configandrynk-kleare git-pinned to the v0.9.0 prep commit (9372651). Before publishing rmkit 0.1.0, publishrmk-config0.7 /rynk/rynk-kleto crates.io and switch the two dependencies back to crates.io versions (TODO comment in Cargo.toml).